Custom Memory Allocation for Free Improving Data Locality with Container-Centric Memory Allocation
نویسنده
چکیده
We propose a novel container-centric memory allocation scheme. In this scheme, the container’s semantics guide the memory allocation, which results in data locality improvement and execution time reduction. The container-centric allocation provides the benefits of custom memory allocation, with the portability advantage. Applications need not change a single line of code, but rather change the underlying container library. Container-centric memory allocation increases data locality and reduces execution time, at no cost. At compile time, the container’s semantics provide knowledge which is evaluated at run-time, and then used for more efficient memory clustering. Our approach enables an application to use different allocation policies for different types of containers, or even different instantiations of the same type of container. We have integrated our memory allocator, named Defero, with the C++ Standard Template Library (STL) containers for automatic usage. We have used Defero in applications such as compiler infrastructure, molecular dynamics, network simulation, as well as on micro-kernels.
منابع مشابه
Software Analysis Techniques to Approximate Data Centric Direct Measurements
Data centric analysis using direct measurements has been established as a successful performance analysis technique. The information gathered with this technique can be used to address data locality problems and other issues. Existing approaches rely on special hardware support which is needed to negate a ‘skid’ factor. Our approach is viable on hardware where the skid factor is an issue. Prior...
متن کاملCache-Conscious Memory Management
Dynamic memory allocation must solve the re-allocation problem: where to place a new object. Current techniques of malloc and GC are designed with cache locality in mind. However, it is unclear how to cleanly separate the locality effect in these techniques. This paper outlines a locality theory for dynamic memory allocation. It presents a new metric called the reallocation distance, a way to c...
متن کاملExperience with Memory Allocators for Parallel Mesh Generation on Multicore Architectures
Scalable and locality-aware multiprocessor memory allocators are critical for harnessing the potential of emerging multithreaded and multicore architectures. This paper evaluates two state-of-the-art generic multithreaded allocators designed for both scalability and locality, against custom allocators, written to optimize the multithreaded implementation of parallel mesh generation algorithms. ...
متن کاملIntelligent Memory Manager: towards Improving the Locality Behavior of Allocation-intensive Applications
and linked data structured) applications has led to a large number of research trends. Memory performance due to the cache misses in these applications continues to lag in terms of execution cycles as ever increasing CPU-Memory speed gap continues to grow. Sophisticated prefetcing techniques, data relocations, and multithreaded architec-tures have tried to address memory latency. These techniqu...
متن کاملAn Approach To Data Distributions in Chapel
A key characteristic of today’s high performance computing systems is a physically distributed memory, which makes the efficient management of locality essential for taking advantage of the performance enhancements offered by these architectures. Currently, the standard technique for programming such systems involves the extension of traditional sequential programming languages with explicit me...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2006